package br.ufc.si.managedBean;

import java.io.File;
import java.io.FileOutputStream;

import javax.faces.bean.ManagedBean;
import javax.faces.context.ExternalContext;
import javax.faces.context.FacesContext;
import javax.servlet.ServletContext;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

import modelo.Perfil;

import org.primefaces.event.FileUploadEvent;

import dao.PerfilDao;

@ManagedBean(name="uploadBean")
public class UploadBean {
	
	public void fileUploadAction(FileUploadEvent event) {
		PerfilDao perfilDao = new PerfilDao();
		try {
            ExternalContext externalContext = FacesContext.getCurrentInstance().getExternalContext();
            HttpServletResponse response = (HttpServletResponse) externalContext.getResponse();

            FacesContext aFacesContext = FacesContext.getCurrentInstance();
            ServletContext context = (ServletContext) aFacesContext.getExternalContext().getContext();
            HttpSession session = (HttpSession)externalContext.getSession(false);
            String email = (String)session.getAttribute("email");
            String realPath = context.getRealPath("/");
 
 // Aqui cria o diretorio caso não exista
            File file = new File(realPath + "/img/inquilino/perfil/");
            file.mkdirs();
            file.exists();
            
            byte[] arquivo = event.getFile().getContents();
            String caminho = realPath + "/img/inquilino/perfil/" + email + ".jpg";    
            System.out.println(caminho);
 // esse trecho grava o arquivo no diretório
            FileOutputStream fos = new FileOutputStream(caminho);
            fos.write(arquivo);
            fos.close();
            
            Perfil perfil = perfilDao.find(email);
            
            //N�o precisa mais
            perfil.setFoto("/img/inquilino/perfil/" + email + ".jpg");
            perfilDao.update(perfil);

        } catch (Exception ex) {
            System.out.println("Erro no upload de imagem" + ex);
        }
    }


	public void fileUploadActionImovel(FileUploadEvent event) {
        try {
            ExternalContext externalContext = FacesContext.getCurrentInstance().getExternalContext();
            HttpServletResponse response = (HttpServletResponse) externalContext.getResponse();

            FacesContext aFacesContext = FacesContext.getCurrentInstance();
            ServletContext context = (ServletContext) aFacesContext.getExternalContext().getContext();
            HttpSession session = (HttpSession)externalContext.getSession(false);
            String email = (String)session.getAttribute("email");
            String realPath = context.getRealPath("/");
            String pasta = (String)session.getAttribute("idImovel") + "/";
            
 // Aqui cria o diretorio caso não exista
            File file = new File(realPath + "img/imovel/" + pasta);
            file.mkdirs();
            
            byte[] arquivo = event.getFile().getContents();
            String caminho = realPath + "img/imovel/" + pasta + event.getFile().getFileName();    
            System.out.println(caminho);
 // esse trecho grava o arquivo no diretório
            FileOutputStream fos = new FileOutputStream(caminho);
            fos.write(arquivo);
            fos.close();
            

        } catch (Exception ex) {
            System.out.println("Erro no upload de imagem" + ex);
        }
    }	
	
}
